from aiogram import Dispatcher
from aiogram.filters import Text
from aiogram.fsm.context import FSMContext
from aiogram.fsm.state import any_state
from aiogram.types import Message
from sqlalchemy.ext.asyncio import AsyncSession

from app.database.functions.user import get_user


async def user_account(
    message: Message, session: AsyncSession, state: FSMContext
) -> None:
    user = await get_user(session, message.from_user.id)
    txt = (
        f"{message.from_user.first_name} - {user.telegram_id}\n\n"
        f"Статистика в боте:\n"
        f"Добавлено аккаунтов: {user.accounts_added}\n"
        f"Лайков: {user.likes}\n"
        f"Комментариев: {user.comments}\n"
        f"Сгенерировано документов: {user.documents_generated}\n"
        f"Уникализировано креативов: {user.uniques}\n"
        f"Сгенерировано вайтов: {user.whitepages_generated}\n"
        f"Создано аккаунтов WLO: {user.wlo_accs_reged}\n"
    )

    await message.answer(txt)


def register_cabinet_handlers(dp: Dispatcher):
    dp.message.register(
        user_account, Text(text="👨‍💻 Личный кабинет", ignore_case=True), any_state
    )
